<!--
  Copyright JS Foundation and other contributors, http://js.foundation

  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->

<script type="text/html" data-help-name="mqtt in">
<p>MQTTブローカに接続し、指定したトピックのメッセージをサブスクライブ(購読)します。</p>
    <h3>出力</h3>
    <dl class="message-properties">
       <dt>payload <span class="property-type">文字列 | バッファ</span></dt>
       <dd>バイナリバッファでない場合は文字列</dd>
       <dt>topic <span class="property-type">文字列</span></dt>
       <dd>MQTTのトピック。/を階層の区切りに使用する</dd>
       <dt>qos <span class="property-type">数値</span> </dt>
       <dd>0: 最大1度到着, 1: 一度以上到着, 2: 1度のみ到着</dd>
       <dt>retain <span class="property-type">真偽値</span></dt>
       <dd>真の場合、メッセージを保持。メッセージが古い値の場合があります。</dd>
       <dt class="optional">responseTopic <span class="property-type">文字列</span></dt>
       <dd><b>MQTTv5</b>: メッセージのMQTT応答トピック</dd>
       <dt class="optional">correlationData <span class="property-type">バッファ</span></dt>
       <dd><b>MQTTv5</b>: メッセージの相関データ</dd>
       <dt class="optional">contentType <span class="property-type">文字列</span></dt>
       <dd><b>MQTTv5</b>: ペイロードのコンテントタイプ</dd>
       <dt class="optional">userProperties <span class="property-type">オブジェクト</span></dt>
       <dd><b>MQTTv5</b>: メッセージのユーザプロパティ</dd>
       <dt class="optional">messageExpiryInterval <span class="property-type">数値</span></dt>
       <dd><b>MQTTv5</b>: 秒単位のメッセージの有効期限</dd>
    </dl>
    <h3>詳細</h3>
    <p>購読トピックにはMQTTのワイルドカード(+: 1レベル, #: 複数レベル)を含めることができます。</p>
    <p>このノードの利用のためには、MQTTブローカへの接続設定が必要です。この設定は鉛筆アイコンをクリックすることで行えます。</p>
    <p>MQTT(inおよびout)ノードはブローカへの接続設定を必要に応じて共有できます。</p>
    <h4>動的購読</h4>
    本ノードは、MQTTの接続と購読を動的に制御するよう設定できます。有効にすると、本ノードの入力にメッセージを渡すことで制御できます。
    <h3>入力</h3>
    <p>これらは、動的購読が設定されている場合のみ適用されます。</p>
    <dl class="message-properties">
       <dt>action <span class="property-type">文字列</span></dt>
       <dd>本ノードが行う動作の名前。利用可能な動作は<code>"connect"</code>、<code>"disconnect"</code>、<code>"subscribe"</code>、<code>"unsubscribe"</code>です。</dd>
       <dt class="optional">topic <span class="property-type">文字列|オブジェクト|配列</span></dt>
       <dd><code>"subscribe"</code>と<code>"unsubscribe"</code>の動作に対して、本プロパティはトピックを提供します。次のいずれかを設定できます:<ul>
           <li>トピックフィルターを含む文字列</li>
           <li><code>topic</code>と<code>qos</code>プロパティを持つオブジェクト</li>
           <li>複数のトピックを扱う文字列やオブジェクトの配列</li>
            </ul>
        </dd>
       <dt class="optional">broker <span class="property-type">broker</span> </dt>
       <dd><code>"connect"</code>の動作に対して、本プロパティは次の様な個々のブローカ設定を上書きします: <ul>
               <li><code>broker</code></li>
               <li><code>port</code></li>
               <li><code>url</code> - 完全な接続URLを提供するために、brokerとportを上書き</li>
               <li><code>username</code></li>
               <li><code>password</code></li>
           </ul>
           <p>本プロパティが設定され既にブローカが接続されている場合、<code>force</code>プロパティを設定しない限り、エラーがログに記録されます。設定された場合はブローカから切断され、新しい設定を適用して再接続します。</p>
       </dd>
    </dl>
</script>

<script type="text/html" data-help-name="mqtt out">
    <p>MQTTブローカに接続し、メッセージをパブリッシュ(発行)します。</p>
    <h3>入力</h3>
    <dl class="message-properties">
       <dt>payload <span class="property-type">文字列 | バッファ</span></dt>
       <dd>発行するペイロード。プロパティが設定されていない場合には、メッセージは送信されません。空のメッセージを送信するには、プロパティに空文字列を設定します。</dd>
       <dt class="optional">topic <span class="property-type">文字列</span></dt>
       <dd>発行対象のMQTTトピック</dd>
       <dt class="optional">qos <span class="property-type">数値</span></dt>
       <dd>0: 最大一度到着, 1: 一度以上到着, 2: 一度のみ到着。デフォルトは0です。</dd>
       <dt class="optional">retain <span class="property-type">真偽値</span></dt>
       <dd>真の場合、メッセージをブローカに保持します。デフォルトは偽です。</dd>
       <dt class="optional">responseTopic <span class="property-type">文字列</span></dt>
       <dd><b>MQTTv5</b>: メッセージのMQTT応答トピック</dd>
       <dt class="optional">correlationData <span class="property-type">バッファ</span></dt>
       <dd><b>MQTTv5</b>: メッセージの相関データ</dd>
       <dt class="optional">contentType <span class="property-type">文字列</span></dt>
       <dd><b>MQTTv5</b>: ペイロードのコンテントタイプ</dd>
       <dt class="optional">userProperties <span class="property-type">オブジェクト</span></dt>
       <dd><b>MQTTv5</b>: メッセージのユーザプロパティ</dd>
       <dt class="optional">messageExpiryInterval <span class="property-type">数値</span></dt>
       <dd><b>MQTTv5</b>: 秒単位のメッセージの有効期限</dd>
       <dt class="optional">topicAlias <span class="property-type">数値</span></dt>
       <dd><b>MQTTv5</b>: 使用するMQTTトピックエイリアス</dd>
    </dl>
    <h3>詳細</h3>
    <p><code>msg.payload</code>を発行するメッセージのペイロードとして用います。ペイロードがオブジェクトの場合、送信の際にJSON文字列に変換します。ペイロードがバイナリバッファの場合、そのまま送信します。</p>
    <p>発行に利用するトピックはノードに設定するか、もしくは、<code>msg.topic</code>で指定します。</p>
    <p>同様に、QoSとretainもノードの設定、もしくは、ノードの設定が空の場合には、それぞれ<code>msg.qos</code>および<code>msg.retain</code>で指定できます。以前ブローカに保存したトピックをクリアするには、retainフラグを設定して当該トピックに空のメッセージを発行します。</p>
    <p>このノードの利用のためには、MQTTブローカへの接続設定が必要です。この設定は鉛筆アイコンをクリックすることで行えます。</p>
    <p>MQTT(inおよびout)ノードはブローカへの接続設定を必要に応じて共有できます。</p>

    <h4>動的制御</h4>
    本ノードによって接続を動的に制御できます。本ノードが以下の制御メッセージのいずれかを受け取った際は、ペイロードと同じ様にパブリッシュされることはありません。
    <h3>入力</h3>
    <dl class="message-properties">
       <dt>action <span class="property-type">文字列</span></dt>
       <dd>本ノードが行う動作の名前。利用可能な動作は<code>"connect"</code>、<code>"disconnect"</code>、<code>"subscribe"</code>、<code>"unsubscribe"</code>です。</dd>
       <dt class="optional">broker <span class="property-type">broker</span> </dt>
       <dd><code>"connect"</code>の動作に対して、本プロパティは次の様な個々のブローカ設定を上書きします: <ul>
           <li><code>broker</code></li>
           <li><code>port</code></li>
           <li><code>url</code> - 完全な接続URLを提供するために、brokerとportを上書き</li>
           <li><code>username</code></li>
           <li><code>password</code></li>
        </ul>
        <p>本プロパティが設定され既にブローカが接続されている場合、<code>force</code>プロパティを設定しない限り、エラーがログに記録されます。設定された場合はブローカから切断され、新しい設定を適用して再接続します。</p>
       </dd>
    </dl>
</script>

<script type="text/html" data-help-name="mqtt-broker">
    <p>MQTTブローカへの接続設定</p>
    <p>ブローカへの接続設定を作成します。設定は<code>MQTT In</code>および<code>MQTT Out</code>ノードで再利用できます。</p>
    <p>ノードにクライアントIDを設定しておらずセッションの初期化を設定している場合、ランダムなクライアントIDを生成します。クライアントIDを設定する場合、接続先のブローカで一意となるようにしてください。</p>
    <h4>Birthメッセージ</h4>
    <p>接続を確立した際に、設定したトピックに対して発行するメッセージ</p>
    <h4>Closeメッセージ</h4>
    <p>接続が正常に終了する前に、ノードの再デプロイまたはシャットダウンした場合に、設定したトピックに対して発行するメッセージ</p>
    <h4>Willメッセージ</h4>
    <p>予期せず接続が切断された場合にブローカが発行するメッセージ</p>
    <h4>WebSocket</h4>
    <p>WebSocketによる接続を行うように設定できます。WebSocketを利用するには、サーバフィールドに接続先のURIを完全な形式で記述します。以下に例を示します。</p>
    <pre>ws://example.com:4000/mqtt</pre>
</script>
